package avicit.bdp.dcs.plugin.hdfs.param;

import avicit.bdp.dcs.plugin.BaseDataxParam;

import java.util.List;
import java.util.Map;

/**
 * @金航数码科技有限责任公司
 * @作者：liyb
 * @邮箱：liyb@avic-digital.com
 * @创建时间： 2021-01-27 18:05
 * @类说明：用于传参，构建json
 * @修改记录：
 */
public class HdfsDataxParam extends BaseDataxParam {

    // 列名
    private List<Map<String, Object>> readerColumn;
    private List<String> readerPath;
    private String defaultFS;
    private String fileType;
    private String fieldDelimiter;
    // 跳过首行
    private Boolean skipHeader;
    // 跳过行数
    private Integer skipLines;
    private Integer sheetTab;
    // 指定json数据位置
    private String jsonPath;
    // 单双引号处理
    private Integer quotation;
    // 单引号处理
    private String singleQuotation;
    // 双引号处理
    private String doubleQuotation;

    private List<Map<String, Object>> writerPaths;
    private String writeMode;
    private Integer maxFileSize;
    private List<Map<String, Object>> tbl2DeviceMap;
    private String taskType;
    private List<HdfsParam> writerColumns;

    private String writerPath;
    private String fileName;
    private List<Map<String, Object>> writerColumn;
    private Map<String, Object> hiveConnection;

    // 源类型，hdfs、kafka
    private String sourceType;
    // 开启Kerberos认证
    private Boolean haveKerberos;
    // Kerberos认证参数
    private Map<String, Object> kerberosParam;

    public static class HdfsParam {

        private String tableName;
        private String deviceId;
        // 列名
        private List<Map<String, Object>> column;

        public String getTableName() {
            return tableName;
        }

        public void setTableName(String tableName) {
            this.tableName = tableName;
        }

        public String getDeviceId() {
            return deviceId;
        }

        public void setDeviceId(String deviceId) {
            this.deviceId = deviceId;
        }

        public List<Map<String, Object>> getColumn() {
            return column;
        }

        public void setColumn(List<Map<String, Object>> column) {
            this.column = column;
        }

    }

    public List<Map<String, Object>> getReaderColumn() {
        return readerColumn;
    }

    public void setReaderColumn(List<Map<String, Object>> readerColumn) {
        this.readerColumn = readerColumn;
    }

    public List<String> getReaderPath() {
        return readerPath;
    }

    public void setReaderPath(List<String> readerPath) {
        this.readerPath = readerPath;
    }

    public String getDefaultFS() {
        return defaultFS;
    }

    public void setDefaultFS(String defaultFS) {
        this.defaultFS = defaultFS;
    }

    public String getFileType() {
        return fileType;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    public String getFieldDelimiter() {
        return fieldDelimiter;
    }

    public void setFieldDelimiter(String fieldDelimiter) {
        this.fieldDelimiter = fieldDelimiter;
    }

    public Boolean getSkipHeader() {
        return skipHeader;
    }

    public void setSkipHeader(Boolean skipHeader) {
        this.skipHeader = skipHeader;
    }

    public Integer getSkipLines() {
        return skipLines;
    }

    public void setSkipLines(Integer skipLines) {
        this.skipLines = skipLines;
    }

    public String getWriteMode() {
        return writeMode;
    }

    public void setWriteMode(String writeMode) {
        this.writeMode = writeMode;
    }

    public Integer getMaxFileSize() {
        return maxFileSize;
    }

    public void setMaxFileSize(Integer maxFileSize) {
        this.maxFileSize = maxFileSize;
    }

    public List<Map<String, Object>> getTbl2DeviceMap() {
        return tbl2DeviceMap;
    }

    public void setTbl2DeviceMap(List<Map<String, Object>> tbl2DeviceMap) {
        this.tbl2DeviceMap = tbl2DeviceMap;
    }

    public String getTaskType() {
        return taskType;
    }

    public void setTaskType(String taskType) {
        this.taskType = taskType;
    }

    public List<HdfsParam> getWriterColumns() {
        return writerColumns;
    }

    public void setWriterColumns(List<HdfsParam> writerColumns) {
        this.writerColumns = writerColumns;
    }

    public List<Map<String, Object>> getWriterPaths() {
        return writerPaths;
    }

    public void setWriterPaths(List<Map<String, Object>> writerPaths) {
        this.writerPaths = writerPaths;
    }

    public String getWriterPath() {
        return writerPath;
    }

    public void setWriterPath(String writerPath) {
        this.writerPath = writerPath;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public List<Map<String, Object>> getWriterColumn() {
        return writerColumn;
    }

    public void setWriterColumn(List<Map<String, Object>> writerColumn) {
        this.writerColumn = writerColumn;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public Map<String, Object> getHiveConnection() {
        return hiveConnection;
    }

    public void setHiveConnection(Map<String, Object> hiveConnection) {
        this.hiveConnection = hiveConnection;
    }

    public Boolean getHaveKerberos() {
        return haveKerberos;
    }

    public void setHaveKerberos(Boolean haveKerberos) {
        this.haveKerberos = haveKerberos;
    }

    public Integer getSheetTab() {
        return sheetTab;
    }

    public void setSheetTab(Integer sheetTab) {
        this.sheetTab = sheetTab;
    }

    public String getJsonPath() {
        return jsonPath;
    }

    public void setJsonPath(String jsonPath) {
        this.jsonPath = jsonPath;
    }

    public Integer getQuotation() {
        return quotation;
    }

    public void setQuotation(Integer quotation) {
        this.quotation = quotation;
    }

    public String getSingleQuotation() {
        return singleQuotation;
    }

    public void setSingleQuotation(String singleQuotation) {
        this.singleQuotation = singleQuotation;
    }

    public String getDoubleQuotation() {
        return doubleQuotation;
    }

    public void setDoubleQuotation(String doubleQuotation) {
        this.doubleQuotation = doubleQuotation;
    }

    public Map<String, Object> getKerberosParam() {
        return kerberosParam;
    }

    public void setKerberosParam(Map<String, Object> kerberosParam) {
        this.kerberosParam = kerberosParam;
    }

}
